'use strict';
(function(){
  var baseImageUrl = 'http://static.winnovator.cn/scale/18/';

  var ratef = function(v){
    var tv = (((v +6)/(12)+0.1)*100).toFixed(1);
    if(tv > 100){
      return 100;
    }
    return tv;

  };
  function getRandomNum(Min,Max)
  {
    var Range = Max - Min;
    var Rand = Math.random();
    return(Min + Math.round(Rand * Range));
  }

  var userSelectedSerial = {};

  //获得试题的各个维度的得分
  function qDimResult(qId,qAnswerArr){

    var dimResult = [];
    _.each(qAnswerArr, function(oneAid){
      var one = _answerDims[oneAid];
      _.each(one, function(oneDim){
        dimResult[oneDim.name - 1] = oneDim.value;
      });
    });
    return dimResult;

  }
  window.roundDataUtil = {
    currentQuestion:function(){
      return currentQuestion;
    },
    getNext: function(answerId){ //根据已有的答题序列获得下一提
      if(answerId === null){//针对用户没有选择的时候
        answerId = currentQuestion.answers[0].id;
        console.log("用户没有选择，默认为：" + answerId);
      }

      var oneAnswer = _answers[answerId];
      var nextItem = oneAnswer.next;
      var data = null;
      var questionIndex = -1;
      if(nextItem.type === 'q'){
        data = questions_map[nextItem.id];
        currentQuestion = data;
        //获得下一题目的索引值
        for(var i = 0 ; i < _questions.length ; i ++){
          var oneQuestoin = _questions[i];
          if(oneQuestoin.id == nextItem.id){
            questionIndex = i;
            break;
          }
        }
      }else{
        //答题结果
        //从特定的题型中解析该试题的维度


        //拿到用户的答题序列
        var dimResultArr = [];
        _.each(_.values(userSelectedSerial),function(oneArr){
          dimResultArr.push(qDimResult(null,oneArr));
        });
        var answerDimsList = [];//各个维度数组的总和
        for(var i = 0; i < 5; i++){
          var tempSum = 0;
          _.each(dimResultArr,function(oneDimResult){
            if(oneDimResult[i]){
              tempSum += oneDimResult[i];
            }
          });

        //   console.log('tempSum:: ' +tempSum);
          answerDimsList[i] = tempSum;
        }

        //根据各个维度获得结果
        var data = null;
        for(var i = 0; i < resultDescData.length; i++){
          var tmpDesc = resultDescData[i];
// console.log(answerDimsList);
          if(tmpDesc.check(answerDimsList)){
            data = tmpDesc.getResult(answerDimsList);
            break;
          }
        }

        // console.log(answerDimsList);

        if(data === null){
          data = resultDescData[1].getResult([1,1,1,1,1]);
        }
      }

      return {
        type: nextItem.type,
        data:data,
        pageIndex: questionIndex
      }

    },
    selectItem: function(qid, selectSerial){
    //   console.log(qid);
    //   console.log(selectSerial);
      userSelectedSerial[qid] = selectSerial;
    },
    getUserSelectResult: function(){
      return userSelectedSerial;
    }
  }

  var _questions = [
    {
      'id': 'q1',
      'caption': '我会因为粗心、不注意或心不在焉而弄坏或者打翻一些东西',
      'img_src': baseImageUrl + '1.jpg',
      'imgWidth': 650,'imgHeight': 310,
      'answers': [
        {'id':'a11', 'caption': '是', 'next':{'type':'q','id':'q2'}},
        {'id':'a12', 'caption': '否', 'next':{'type':'q','id':'q2'}}
      ]
    },
    {
      'id': 'q2',
      'caption': '通常我会直奔我的目的地而忽视路上的事物',
      'img_src': baseImageUrl + '2.jpg',
      'imgWidth': 650,'imgHeight': 310,
      'answers': [
        {'id':'a21', 'caption': '是', 'next':{'type':'q','id':'q3'}},
        {'id':'a22', 'caption': '否', 'next':{'type':'q','id':'q3'}}
      ]
    },
    {
      'id': 'q3',
      'caption': '通常我不太会察觉到身体上的紧绷或不舒适的感觉，除非这种感觉影响到我',
      'img_src': baseImageUrl + '3.jpg',
      'imgWidth': 650,'imgHeight': 310,
      'answers': [
        {'id':'a31', 'caption': '是','next':{'type':'q','id':'q4'}},
        {'id':'a32', 'caption': '否','next':{'type':'q','id':'q4'}}
      ]
    },
    {
      'id': 'q4',
      'caption': '通常别人告诉我名字之后，我几乎马上就忘了',
      'img_src': baseImageUrl + '4.jpg',
      'imgWidth': 650,'imgHeight': 310,
      'answers': [
        {'id':'a41', 'caption': '是','next':{'type':'q','id':'q5'}},
        {'id':'a42', 'caption': '否','next':{'type':'q','id':'q5'}}
      ]
    },
    {
      'id': 'q5',
      'caption': '我不假思索地完成工作或任务，意识不到自己在做什么',
      'img_src': baseImageUrl + '5.jpg',
      'imgWidth': 650,'imgHeight': 310,
      'answers': [
        {'id':'a51', 'caption': '是','next':{'type':'q','id':'q6'}},
        {'id':'a52', 'caption': '否','next':{'type':'q','id':'q6'}}
      ]
    },
    {
      'id': 'q6',
      'caption': '我一边听着别人说话，同时在做着别的事',
      'img_src': baseImageUrl + '6.jpg',
      'imgWidth': 650,'imgHeight': 310,
      'answers': [
        {'id':'a61', 'caption': '是','next':{'type':'q','id':'q7'}},
        {'id':'a62', 'caption': '否','next':{'type':'q','id':'q7'}}
      ]
    },
    {
      'id': 'q7',
      'caption': '我做事难以集中精力',
      'img_src': baseImageUrl + '7.jpg',
      'imgWidth': 650,'imgHeight': 310,
      'answers': [
        {'id':'a71', 'caption': '是','next':{'type':'q','id':'q8'}},
        {'id':'a72', 'caption': '否','next':{'type':'q','id':'q8'}}
      ]
    },
    {
      'id': 'q8',
      'caption': '我会不自觉地吃零食',
      'img_src': baseImageUrl + '8.jpg',
      'imgWidth': 650,'imgHeight': 310,
      'answers': [
        {'id':'a81', 'caption': '是','next':{'type':'r','id':'c'}},
        {'id':'a82', 'caption': '否','next':{'type':'r','id':'c'}}
      ]
    }
  ];
  var _answerDims = {
    'a11': [{'name':1,'value':0}],
    'a12': [{'name':1,'value':1}],

    'a21': [{'name':1,'value':0}],
    'a22': [{'name':1,'value':1}],

    'a31': [{'name':1,'value':0}],
    'a32': [{'name':1,'value':1}],

    'a41': [{'name':1,'value':0}],
    'a42': [{'name':1,'value':1}],

    'a51': [{'name':1,'value':0}],
    'a52': [{'name':1,'value':1}],

    'a61': [{'name':1,'value':0}],
    'a62': [{'name':1,'value':1}],

    'a71': [{'name':1,'value':0}],
    'a72': [{'name':1,'value':1}],

    'a81': [{'name':1,'value':0}],
    'a82': [{'name':1,'value':1}]
  };
  function isNeiXiang(value){
    if(value>=-2 && value <= 5){
      return true;
    }
    return false;
  }
  function isBuHaiXiu(value){
    if(value>=-6 && value <= 1){
      return true;
    }
    return false;
  }
  var resultDescData =
    [
      {
        check:function(dimList){
          var max = _.max(dimList);

          if(max >= 0 && max <= 2){
            return true;
          }
          return false;
        },
        getResult: function(dimList){
          var dim_pie_name = dimList.join('_') + '_';
          return {
            id : 'r1',
            title:'正念小萌新',
            rate:0,
            desc:'' +
            '<h4>' +
            '相对于当前的环境或感受，您的孩子可能更关注未来或过去发生的事。TA可能专注于目标或愿景而忽视正在经历的事物。您也许也会发现孩子经常能同时做两件或以上的事，有时也会有一些自己并没有意识到的行为。孩子也可能因为心不在焉而犯一些小错误哦~' +
            '</h4>',
            url: baseImageUrl + 'result.jpg'
          }
        }
      },
      {
        check:function(dimList){
          var max = _.max(dimList);
          if(max >=3 && max <= 5){
            return true;
          }
          return false;
        },
        getResult: function(dimList){
          var dim_pie_name = dimList.join('_') + '_';
          return {
            id : 'r2',
            title:'正念小达人',
            rate:0,
            desc:'' +
            '<h4>' +
            '您的孩子能够关注当下的感受和周围的事物，但有时也会因为专注于目标而忽视正在经历的事物。对于需要集中精力的事物，孩子能一心一意地完成，而有时TA也能同时进行两件或以上的事情，记得提醒孩子不要因为粗心而犯错哦！' +
            '</h4>',
            url: baseImageUrl + 'result.jpg'
          }
        }
      },
      {
        check:function(dimList){
          var max = _.max(dimList);
          if(max>=6 && max <=8){
            return true;
          }
          return false;
        },
        getResult: function(dimList){
          var dim_pie_name = dimList.join('_') + '_';
          return {
            id : 'r3',
            rate:0,
            title:'正念小超人',
            desc:'' +
            '<h4>' +
            '您的孩子对发生在周围的事物有着敏锐的感知，能时刻关注当下，关注自己和他人的感受。因此孩子能时刻认识并控制着自己的行为，总能专注地思考，一心一意做事。孩子这样的特点能让TA更幸福哦！' +
            '</h4>',
            url: baseImageUrl + 'result.jpg'
          }
        }
      }
    ];

  var currentQuestion = _questions[0];
  var _answers = _.indexBy(
      _.reduceRight(
        _.map(_questions, function(q){return q.answers}),
        function(a, b) { return a.concat(b); }, []),
      function(one){return one.id;}
  );
  var questions_map = _.indexBy(_questions, function(one){return one.id;});
  //var result_map = _.indexBy(resultDescData, function(one){return one.id;});
window.yoparentData = {
  'id':18,
  'qType':'single-choice',
  'cate_id': '1',
  'title': '儿童正念力测试',
  'imgSrc': baseImageUrl + 'face.jpg?t=' + Math.random(),
  'imgWidth': 650,'imgHeight': 310,
  'description': '正念“Mindfulness”是指有意识而不加判断地觉察，它强调的是一种“活在当下”的态度，这是哈佛大学推荐的20种获得幸福的方法之一。你孩子的正念力怎么样呢~' +
  '<br />请陪伴你的孩子一起做，让孩子选出符合自己的答案。' +
  '<br />（适用年龄范围：5-15）' +
  '<br /><div style="text-align: center"><img src="' + baseImageUrl + 'expert.png"  style="width: 100%;height: auto; margin-top: 25px;"/></div>',
  'isCheckResult':false,
  'showCheckResult':false,
  'share': {
    'title': '儿童正念力测试',
    'description':''
  },
  'questions': _questions,
  'tpl': 'default'
};
})();
